home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1998 November (Bonus) / GAMESTAR11B.ISO / ENCYC99 / MM / T620273A.DCR / scripts_44_Class PushyPictButton.ls < prev    next >
Encoding:
Text File  |  1998-07-02  |  2.7 KB  |  123 lines

  1. property objectSprite, objectRect, objectPict, mouseIsDown, mouseIn, buttonIsOn, objectHidden, onPict, upPict, downPict, offPict, downNum, downEvent, overEvent, outEvent, sendDownEvent, eventCatcher
  2.  
  3. on mouseEvent me, xEvent, xLoc
  4.   set lastObjectNum to the number of objectPict
  5.   case xEvent of
  6.     #mouseEnter:
  7.       if mouseIsDown then
  8.         set objectPict to downPict
  9.       else
  10.         set objectPict to upPict
  11.         catchEvent(eventCatcher, overEvent)
  12.       end if
  13.       set mouseIn to 1
  14.     #mouseLeave:
  15.       set objectPict to onPict
  16.       set mouseIn to 0
  17.     #mouseDown:
  18.       set objectPict to downPict
  19.       set mouseIsDown to 1
  20.     #mouseUp:
  21.       if mouseIn then
  22.         set objectPict to upPict
  23.       else
  24.         set objectPict to onPict
  25.       end if
  26.       set mouseIsDown to 0
  27.     #mouseGone:
  28.       set objectPict to onPict
  29.       catchEvent(eventCatcher, outEvent)
  30.       set mouseIsDown to 0
  31.       set mouseIn to 0
  32.   end case
  33.   set thisObjectNum to the number of objectPict
  34.   if lastObjectNum <> thisObjectNum then
  35.     if lastObjectNum = downNum then
  36.       set sendDownEvent to 0
  37.     else
  38.       if thisObjectNum = downNum then
  39.         set sendDownEvent to 1
  40.       end if
  41.     end if
  42.   end if
  43.   if buttonIsOn then
  44.     set the member of sprite objectSprite to objectPict
  45.     updateStage()
  46.   end if
  47. end
  48.  
  49. on areYouThere me, xLoc
  50.   if objectHidden then
  51.     return 0
  52.   end if
  53.   if inside(xLoc, objectRect) then
  54.     if sendDownEvent then
  55.       catchEvent(eventCatcher, downEvent)
  56.     end if
  57.     return 1
  58.   end if
  59.   return 0
  60. end
  61.  
  62. on turnON me
  63.   if not buttonIsOn then
  64.     set buttonIsOn to 1
  65.     set the member of sprite objectSprite to objectPict
  66.   end if
  67. end
  68.  
  69. on turnOff me
  70.   if buttonIsOn then
  71.     set buttonIsOn to 0
  72.     set the member of sprite objectSprite to offPict
  73.   end if
  74. end
  75.  
  76. on hide me
  77.   set objectHidden to 1
  78.   set the visible of sprite objectSprite to 0
  79. end
  80.  
  81. on reveal me
  82.   set objectHidden to 0
  83.   set the visible of sprite objectSprite to 1
  84. end
  85.  
  86. on new me, xSprite
  87.   set objectSprite to xSprite
  88.   set objectRect to the rect of sprite objectSprite
  89.   set buttonIsOn to 0
  90.   set mouseIn to 0
  91.   puppetSprite(objectSprite, 1)
  92.   return me
  93. end
  94.  
  95. on setPicts me, pictList
  96.   set onPict to getAt(pictList, 1)
  97.   set upPict to getAt(pictList, 2)
  98.   set downPict to getAt(pictList, 3)
  99.   set offPict to getAt(pictList, 4)
  100.   set objectPict to onPict
  101.   set downNum to the number of downPict
  102. end
  103.  
  104. on linkUp me, xCatcher, xDownEvent, xOverEvent, xOutEvent
  105.   set eventCatcher to xCatcher
  106.   set downEvent to xDownEvent
  107.   set overEvent to xOverEvent
  108.   set outEvent to xOutEvent
  109. end
  110.  
  111. on subscribe me, xCursor
  112.   subscribe(xCursor, me)
  113. end
  114.  
  115. on unsubscribe me, xCursor
  116.   unsubscribe(xCursor, me)
  117. end
  118.  
  119. on destroy me
  120.   puppetSprite(objectSprite, 0)
  121.   set me to 0
  122. end
  123.